Portable computing devices are commonplace and widespread in their use. Some of these devices are capable of doing only a singular function, or fixed purpose. Most digital watches, for example, are only capable of performing simple operations around time or possibly doing simple arithmetic. Although they may be able to serve as an alarm clock, stopwatch, timer, or calculator, everything is still controlled by a single process whose capabilities are limited to the tasks defined when the watch was designed and produced. It is realistic to consider that the designers of a fixed purpose device can evaluate all of the behaviors of the device and guarantee that the device always functions correctly.
In addition to fixed purpose devices, multifunction, or general purpose, portable computing devices are very prevalent. These devices allow users to, for example, play movies, music, video games, and/or other types of media from an internal or external memory. These devices also support additional functions, such as those associated with cellular phones, portable digital assistants (PDAs), and traditional desktop computing (notebooks). Unlike fixed purpose devices, multifunction devices are typically set apart by having an operating system which provides a platform upon which the original designers or third parties may extend the functionality of the device. Because the designers are not able to determine all of the different tasks the device will ever perform they cannot guarantee that the device always functions correctly. This responsibility is now shared by all individuals who choose to extend the functionally of the device. The devices come in many shapes and configurations, and offer a wide variety of functionality.
Portable computing devices of this type are commonly equipped with solid state memories (e.g. non-volatile RAM (random access memory) or flash memory) to store the media. However, these devices are limited in the amount of media that can be stored. To increase storage capacity, a device can be equipped with hard disk memory that is capable of holding large quantities of media, such as full-length movies and extensive music libraries. The drawback of using hard disk memory is that accessing content is slower and less responsive in comparison to solid state memory. Thus, users may encounter noticeable delays between the time they select play and the time music is heard or video seen, resulting potentially in an unsatisfactory user experience. Additionally, accessing content on the hard disk memory typically consumes more power than accessing content in solid state memory. For example, digital media playback can be a CPU and file system intensive task. Both of these systems can place significant demands on the overall power requirements of a computer. In contrast, this is typically not a significant issue on a desktop computer because it has a constant power supply readily available. However on portable devices, where battery power is the primary source, problems occur. The heavy demands placed on the battery by the CPU and the different devices used to store data can severely limit the overall battery life of the device and its attractiveness to the consumer.
Designers of portable computing devices and those who write software to extend multifunction devices are therefore faced with a number of competing design challenges, including maximizing battery life, providing a responsive user interface for a satisfactory user experience, and supporting extended periods of playback. Designers have been generally resigned to satisfying one or possibly two of these challenges, while sacrificing the others. But, with each generation of devices, consumers demand more.